package com.huahua.api.entity.param;

import lombok.Data;

/**
 * @author Huahua-Ai
 * @date 2025-07-24 14:48:00
 * @description 打印任务请求参数
 */
@Data
public class PrintTaskRequest {

    /**
     * 客户端ID
     */
    private String clientId;

    /**
     * 命令类型 (print)
     */
    private String command = "print";

    /**
     * 打印机名称
     */
    private String printerName;

    /**
     * 文档URL
     */
    private String url;

    /**
     * 文档标题
     */
    private String title;

    /**
     * 打印选项
     */
    private PrintOptions options;

    /**
     * 打印选项内部类
     */
    @Data
    public static class PrintOptions {

        /**
         * 份数
         */
        private Integer copies = 1;

        /**
         * 颜色模式 (color/monochrome)
         */
        private String colorMode = "color";

        /**
         * 双面打印 (none/two-sided-long-edge/two-sided-short-edge)
         */
        private String duplex = "none";

        /**
         * 方向 (3=纵向, 4=横向)
         */
        private String orientation = "3";

        /**
         * 纸张大小 (A4/A3/Letter等)
         */
        private String mediaSize = "A4";

        /**
         * 打印质量 (3=草稿, 4=正常, 5=高质量)
         */
        private String quality = "4";

        /**
         * 页面范围 (如: "1-10,15-20")
         */
        private String pageRanges;

        /**
         * 每张纸的页数
         */
        private Integer pagesPerSheet = 1;

        /**
         * 缩放比例 (百分比)
         */
        private Integer scaling = 100;

        /**
         * 适应页面
         */
        private Boolean fitToPage = false;

        /**
         * 逐份打印
         */
        private Boolean collate = true;

        /**
         * 装订
         */
        private Boolean staple = false;

        /**
         * 打孔
         */
        private Boolean punch = false;

        /**
         * 折叠
         */
        private Boolean fold = false;

        /**
         * 小册子模式
         */
        private Boolean booklet = false;

        /**
         * 边框 (none/single/double)
         */
        private String border = "none";

        /**
         * 亮度 (0-200, 100为正常)
         */
        private Integer brightness = 100;

        /**
         * 伽马值 (1-10000, 1000为正常)
         */
        private Integer gamma = 1000;

        /**
         * 饱和度 (0-200, 100为正常)
         */
        private Integer saturation = 100;

        /**
         * 色调 (-180-180, 0为正常)
         */
        private Integer hue = 0;

        /**
         * 黑白打印
         */
        private Boolean blackplot = false;

        /**
         * 渲染意图
         */
        private String renderintent = "auto";

        /**
         * 纸张来源
         */
        private String mediaSource = "auto";

        /**
         * 内容优化
         */
        private String printContentOptimize = "auto";

        /**
         * 打印渲染意图
         */
        private String printRenderingIntent = "auto";

        /**
         * 打印缩放
         */
        private String printScaling = "auto";

        /**
         * 完成选项 (3=装订)
         */
        private String finishings = "0";

        /**
         * 合并打印数
         */
        private Integer numberUp = 1;

        /**
         * 作业优先级 (1-100)
         */
        private Integer jobPriority = 50;

        /**
         * 作业保持时间
         */
        private String jobHoldUntil = "no-hold";

        /**
         * 输出托盘
         */
        private String outputBin = "auto";

        /**
         * 打印颜色模式
         */
        private String printColor = "color";
    }
}
